package com.itheima.controller;


import com.itheima.pojo.Result;
import com.itheima.utils.AliOssUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@RestController
public class FileUploadController {
    @PostMapping("/upload")
    /*
    MultipartFile file 是一个Spring框架提供的接口类型，用于接收前端上传的文件数据。它的作用是：
    表示通过HTTP请求上传的文件内容。
    提供方法操作文件，例如获取文件名、读取文件流或保存文件到本地。
    在当前代码中，MultipartFile file 作为控制器方法的参数，接收用户上传的文件，并通过其方法获取文件的原始名称、输入流等信息，用于后续处理（如生成唯一文件名和上传至阿里云OSS）
     */
    public Result<String> upload(MultipartFile file) throws Exception {
        //把文件存储到我本地磁盘，
        // 获取原始文件名
        String originalFilename = file.getOriginalFilename();
        //保证文件名是唯一的
        String filename = UUID.randomUUID().toString()+originalFilename.substring(originalFilename.lastIndexOf("."));
//        file.transferTo(new File("E:\\计算机课程\\springBoot\\file\\"+filename));
        String url = AliOssUtil.uploadFile(filename,file.getInputStream());
        return Result.success(url);
    }
}
